Spring 2025 BAA1030 Data Analytics & Story Telling (20074)
Name : Praghya Prakhar
Student ID: A00039396
Programme: Data Analytics
Executive Summary
This report explores global disparities in child mortality and health inequalities, focusing on data provided by UNICEF. It integrates key indicators such as child mortality rates, health access, and education, highlighting the disparities between high-income and low-income countries. The goal is to raise awareness about the urgent need for intervention in countries with the highest mortality rates.
Introduction
Child mortality remains a major issue worldwide, particularly in low-income nations. UNICEF focuses on improving healthcare, access to clean water, and education to reduce these inequalities. This report analyzes the factors contributing to high mortality rates and suggests potential policy actions to support children’s survival and well-being.
Global Child Mortality and Health Inequalities
Child mortality remains a major issue worldwide, particularly in low-income nations.
UNICEF focuses on saving children’s lives by improving access to healthcare, clean water, and education.
Key Insights:
Child mortality rates are highest in Sub-Saharan Africa.
Economic development strongly impacts health outcomes.
Progress has been made, but disparities remain wide.
Code
import pandas as pdimport geopandas as gpdfrom plotnine import*import matplotlib.pyplot as pltimport geodatasetsimport plotly.express as px# Load the CSV filesindicator1 = pd.read_csv("unicef_indicator_1.csv")indicator2 = pd.read_csv("unicef_indicator_2.csv")metadata = pd.read_csv("unicef_metadata.csv")
World Child Mortality Map
Code
# Load world map# Prepare world mapworld = gpd.read_file(r'C:\Users\hp\Desktop\UNICEF-Report\data\ne_110m_admin_0_countries\ne_110m_admin_0_countries.shp')world = world.rename(columns={"NAME_EN": "Country"})# Merge mortality datamortality_2020 = indicator1[indicator1['time_period'] ==2020]# Only keep necessary columns (mortality 2020)mortality_2020 = indicator1[indicator1['time_period'] ==2020]# Now plot using Plotlyfig = px.choropleth( mortality_2020, locations="alpha_3_code", # this must exist in your indicator1 dataset color="obs_value", hover_name="country", color_continuous_scale="Reds", title="Global Child Mortality Rates (2020)", labels={'obs_value': 'Mortality Rate (per 1000 births)'})fig.update_layout( geo=dict(showframe=False, showcoastlines=False), margin={"r":0,"t":50,"l":0,"b":0})fig.show()
Top 10 Countries
Code
# Filter data for 2020mortality_2020 = indicator1[indicator1['time_period'] ==2020]# Sort by 'obs_value' (mortality rate)top10 = mortality_2020.sort_values(by="obs_value", ascending=False).head(10)# Create an interactive horizontal bar chartfig = px.bar( top10, x='obs_value', y='country', orientation='h', # 👈 Horizontal bars color='country', color_discrete_sequence=["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" ], title="Top 10 Countries by Child Mortality Rate (2020)", labels={'obs_value': 'Mortality Rate per 1000 births', 'country': 'Country'})# Flip y-axis for better readingfig.update_layout( yaxis={'categoryorder': 'total ascending'}, xaxis_title="Mortality Rate per 1000 births", yaxis_title="Country", showlegend=False)fig.show()
GDP vs Mortality
Code
merged = pd.merge(indicator1, indicator2, on=['country', 'time_period'], suffixes=("_mortality", "_gdp"))# Now plot with a slider across time_period (year)fig = px.scatter( merged, x='obs_value_gdp', y='obs_value_mortality', animation_frame='time_period', color='obs_value_mortality', color_continuous_scale="Viridis", title="GDP vs Child Mortality Rate Over Time", labels={'obs_value_gdp': 'GDP per Capita','obs_value_mortality': 'Mortality Rate (per 1000 births)','time_period': 'Year' }, hover_name='country', size_max=45)fig.update_layout( xaxis_title="GDP per Capita", yaxis_title="Mortality Rate per 1000 births", showlegend=False)fig.show()
Global Trend Over Time
Code
# Group by 'country' and 'year'country_mortality = indicator1.groupby(['country', 'time_period'])['obs_value'].mean().reset_index()fig = px.line( country_mortality, x='time_period', y='obs_value', animation_frame='country', title="Child Mortality Over Time by Country (Use Slider Below)", labels={'time_period': 'Year', 'obs_value': 'Mortality Rate (per 1000 births)', 'country': 'Country'},)fig.update_layout( xaxis_title="Year", yaxis_title="Mortality Rate", hovermode="x unified", showlegend=False)fig.show()
Conclusion
This report presents an in-depth analysis of global child mortality and related health inequalities, emphasizing the importance of improved access to healthcare, clean water, and education. By examining key indicators such as GDP, mortality rates, and orphanhood trends, we observe a significant disparity between high-income and low-income countries. Interventions are urgently needed in regions with high mortality rates to reduce these disparities.
Source Code
---title: "Mapping Child Mortality and Orphanhood Trends: A UNICEF Perspective"format: html: embed-resources: true toc: true theme: cosmo code-fold: true code-tools: true code-overflow: wrap execute: echo: true freeze: auto---# Spring 2025 BAA1030 Data Analytics & Story Telling (20074)**Name** : Praghya Prakhar **Student ID**: A00039396 **Programme**: Data Analytics## Executive SummaryThis report explores global disparities in child mortality and health inequalities, focusing on data provided by UNICEF. It integrates key indicators such as child mortality rates, health access, and education, highlighting the disparities between high-income and low-income countries. The goal is to raise awareness about the urgent need for intervention in countries with the highest mortality rates.## IntroductionChild mortality remains a major issue worldwide, particularly in low-income nations. UNICEF focuses on improving healthcare, access to clean water, and education to reduce these inequalities. This report analyzes the factors contributing to high mortality rates and suggests potential policy actions to support children’s survival and well-being.# Global Child Mortality and Health Inequalities**Child mortality** remains a major issue worldwide, particularly in low-income nations. UNICEF focuses on **saving children's lives** by improving access to healthcare, clean water, and education.## Key Insights:- Child mortality rates are highest in Sub-Saharan Africa.- Economic development strongly impacts health outcomes.- Progress has been made, but disparities remain wide.```{python}#| code-fold: trueimport pandas as pdimport geopandas as gpdfrom plotnine import*import matplotlib.pyplot as pltimport geodatasetsimport plotly.express as px# Load the CSV filesindicator1 = pd.read_csv("unicef_indicator_1.csv")indicator2 = pd.read_csv("unicef_indicator_2.csv")metadata = pd.read_csv("unicef_metadata.csv")```# World Child Mortality Map```{python}#| code-fold: true# Load world map# Prepare world mapworld = gpd.read_file(r'C:\Users\hp\Desktop\UNICEF-Report\data\ne_110m_admin_0_countries\ne_110m_admin_0_countries.shp')world = world.rename(columns={"NAME_EN": "Country"})# Merge mortality datamortality_2020 = indicator1[indicator1['time_period'] ==2020]# Only keep necessary columns (mortality 2020)mortality_2020 = indicator1[indicator1['time_period'] ==2020]# Now plot using Plotlyfig = px.choropleth( mortality_2020, locations="alpha_3_code", # this must exist in your indicator1 dataset color="obs_value", hover_name="country", color_continuous_scale="Reds", title="Global Child Mortality Rates (2020)", labels={'obs_value': 'Mortality Rate (per 1000 births)'})fig.update_layout( geo=dict(showframe=False, showcoastlines=False), margin={"r":0,"t":50,"l":0,"b":0})fig.show()```# Top 10 Countries```{python}#| code-fold: true# Filter data for 2020mortality_2020 = indicator1[indicator1['time_period'] ==2020]# Sort by 'obs_value' (mortality rate)top10 = mortality_2020.sort_values(by="obs_value", ascending=False).head(10)# Create an interactive horizontal bar chartfig = px.bar( top10, x='obs_value', y='country', orientation='h', # 👈 Horizontal bars color='country', color_discrete_sequence=["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" ], title="Top 10 Countries by Child Mortality Rate (2020)", labels={'obs_value': 'Mortality Rate per 1000 births', 'country': 'Country'})# Flip y-axis for better readingfig.update_layout( yaxis={'categoryorder': 'total ascending'}, xaxis_title="Mortality Rate per 1000 births", yaxis_title="Country", showlegend=False)fig.show()```# GDP vs Mortality```{python}#| code-fold: truemerged = pd.merge(indicator1, indicator2, on=['country', 'time_period'], suffixes=("_mortality", "_gdp"))# Now plot with a slider across time_period (year)fig = px.scatter( merged, x='obs_value_gdp', y='obs_value_mortality', animation_frame='time_period', color='obs_value_mortality', color_continuous_scale="Viridis", title="GDP vs Child Mortality Rate Over Time", labels={'obs_value_gdp': 'GDP per Capita','obs_value_mortality': 'Mortality Rate (per 1000 births)','time_period': 'Year' }, hover_name='country', size_max=45)fig.update_layout( xaxis_title="GDP per Capita", yaxis_title="Mortality Rate per 1000 births", showlegend=False)fig.show()```# Global Trend Over Time```{python}#| code-fold: true# Group by 'country' and 'year'country_mortality = indicator1.groupby(['country', 'time_period'])['obs_value'].mean().reset_index()fig = px.line( country_mortality, x='time_period', y='obs_value', animation_frame='country', title="Child Mortality Over Time by Country (Use Slider Below)", labels={'time_period': 'Year', 'obs_value': 'Mortality Rate (per 1000 births)', 'country': 'Country'},)fig.update_layout( xaxis_title="Year", yaxis_title="Mortality Rate", hovermode="x unified", showlegend=False)fig.show()```# ConclusionThis report presents an in-depth analysis of global child mortality and related health inequalities, emphasizing the importance of improved access to healthcare, clean water, and education. By examining key indicators such as GDP, mortality rates, and orphanhood trends, we observe a significant disparity between high-income and low-income countries. Interventions are urgently needed in regions with high mortality rates to reduce these disparities.